home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / 199bobs.lha / 199bobs.S < prev    next >
Encoding:
Text File  |  1990-09-13  |  12.5 KB  |  516 lines

  1.     Section shit,code_c
  2.  
  3. ****************  Bob-Competition  **********************
  4. *                            *
  5. *               199 Bobs !            *
  6. *  technical infos:                    *
  7. *    - 320 x 200 screen                *
  8. *    - bobs are moved on the whole(!) screen        *
  9. *    - bobsize: 15 x 15 x 2 planes            *
  10. *    - bobs are masked out (MINTERM: $xfca)        *
  11. *    - real-time calculation of positions        *
  12. *      (no precalculated positionlist !)        *
  13. *    - calculation done by blitter (no joke !)    *
  14. *    - waves can be changed with the right mbutton    *
  15. *                            *
  16. *  PS:                            *
  17. *   do not try to code in the style of this bobdemo,    *
  18. *    it is just so bad because i fought for every    *
  19. *     piece of raster-time...                *
  20. *      the small green line displays the        *
  21. *    remaining raster-time (not that much !)        *
  22. *                            *
  23. *                (c) '90 by MIC/L4    *
  24. *********************************************************
  25. balls = 199
  26.  
  27. balldaten = $70000+(64*2*200)
  28. ballmasken = balldaten+(balls*15*4)
  29.  
  30. anz_tabs = 17
  31.  
  32. ytable = $60000+(64*2*200)
  33. xtable = ytable+(200*2*anz_tabs)
  34. shifttable = xtable+(320*2*anz_tabs)
  35.  
  36. bl = 215
  37. pl = 400-bl
  38. ;------ macros -----
  39. wblit:    macro
  40. .wblit:
  41.     btst    #14,$2(a5)
  42.     bne.s    .wblit
  43.     endm
  44.  
  45.     jmp    start
  46.  
  47.     org    $40000
  48.     load    $40000
  49. d:
  50. start:
  51.     move.l    4.w,a6
  52.     lea    grafname(pc),a1
  53.     jsr    -408(a6)
  54.     move.l    d0,a1
  55.     move.l    38(a1),oldcopper
  56.     jsr    -414(a6)
  57.  
  58.     move.w    $dff002,olddma
  59.     or.w    #$8000,olddma
  60.     move.w    $dff01c,oldint
  61.     or.w    #$8000,oldint
  62.  
  63.     move.w    #$7fff,$dff09a
  64.     move.w    #$7fff,$dff096
  65.  
  66.     bsr.l    prog_begin
  67.  
  68.     move.l    oldcopper(pc),$dff080
  69.  
  70.     move.w    #$7fff,$dff09a
  71.     move.w    #$7fff,$dff096
  72.  
  73.     move.l    oldcopper(pc),$dff080
  74.     clr.w    $dff088
  75.  
  76.     move.w    olddma(pc),$dff096
  77.     move.w    oldint(pc),$dff09a
  78.  
  79.     rts
  80.  
  81. prog_begin:
  82.     lea    $60000,a0
  83.     lea    $80000,a1
  84.     moveq    #0,d0
  85. clr_all:
  86.     move.l    d0,(a0)+
  87.     cmp.l    a1,a0
  88.     blt.s    clr_all
  89.  
  90.     bsr.l    init_balls
  91.     bsr.l    init_clear
  92.     bsr.l    init_curve
  93.     bsr.l    init_customregs
  94.  
  95.     lea    make_back1(pc),a3
  96.     bra.l    make_offsets
  97. make_back1:
  98.  
  99.     move.l    #clist,$dff080
  100.     clr.w    $dff088
  101.     move.w    #$87c0,$dff096
  102.  
  103.     move.l    a7,stack
  104. sync:
  105.     cmp.b    #238,$dff006
  106.     bne.s    sync
  107.     lea    $dff000,a5
  108.     lea    d(pc),a4
  109.     wblit
  110. mouse:
  111.     cmp.b    #238,$6(a5)
  112.     blt.s    mouse
  113.  
  114.     move.w    #0,$180(a5)
  115.  
  116.     move.l    physbase(pc),a3
  117.  
  118.     move.w    #$0100,$40(a5)
  119.     move.w    #24,$66(a5)
  120.     move.l    a3,$54(a5)
  121.     move.w    #bl*64+20,$58(a5)    ;mit blitter loeschen
  122.  
  123.     lea    bl*64(a3),a3
  124.  
  125.     moveq    #0,d0
  126.     move.l    d0,d1
  127.     move.l    d0,d2
  128.     move.l    d0,d3
  129.     move.l    d0,d4
  130.     move.l    d0,d5
  131.     move.l    d0,d6
  132.     move.l    d0,a0
  133.     move.l    d0,a1
  134.     move.l    d0,a2
  135.     movem.l    d0-d6/a0-a2,(a3)
  136. clear_proz:
  137.     movem.l    d0-d6/a0-a2,64(a3)
  138. clear_proz_list:
  139.     blk.w    (pl-2)*3,0
  140.  
  141.     move.w    logbase(pc),d1
  142.     move.w    physbase(pc),logbase-d(a4) ;lo-wort immer gleich
  143.     move.w    d1,physbase-d(a4)
  144.     move.w    d1,$e0(a5)        ;set hi-pointers
  145.     move.w    d1,$e4(a5)
  146.  
  147.     movem.l    curve_xpt(pc),a0-a2
  148. add_x:
  149.     lea    2(a0),a0        ;add.w xspeed,a0
  150. add_shift:
  151.     lea    2(a1),a1        ;add.w shiftspeed,a1
  152.     cmp.l    #xtable+(320*2),a0
  153.     blt.s    curves_ok
  154.     lea    -(320*2)(a0),a0        ;x-overflow -> shift-overflow
  155.     lea    -(640*2)(a1),a1
  156. curves_ok:
  157. add_y:
  158.     lea    2(a2),a2        ;add.w yspeed,a2
  159.     cmp.l    #ytable+(200*2),a2
  160.     blt.s    curves2_ok
  161.     lea    -(200*2)(a2),a2
  162. curves2_ok:
  163.     movem.l    a0-a2,curve_xpt-d(a4)
  164.  
  165.     lea    $40(a5),a0        ;hit it !!
  166.     move.l    #$0dfc0000,(a0)+    ;bltcon, a+b verodern
  167.     moveq    #-1,d0            ;=$ffffffff
  168.     move.l    d0,(a0)+        ;bltafwm
  169.     move.l    curve_xmod(pc),$62(a5)    ;bmod+amod (xmod,ymod)
  170.     move.w    #12,$66(a5)
  171.     addq.w    #4,a0            ;$48+4 = $4c
  172.     move.l    curve_xpt(pc),(a0)+    ;bpt
  173.     move.l    curve_ypt(pc),(a0)+    ;apt
  174.     move.l    #blit_bobs_rout+6,(a0)+    ;dpt
  175.     move.w    #balls*64+1,(a0)    ;blitsize
  176. blit_bobs:
  177.     move.w    #$0000,$46(a5)        ;bltalwm
  178.     move.l    #(60*$10000)+$10000-2,$60(a5)    ;cmod+bmod
  179.     move.l    #(-2*$10000)+60,$64(a5)    ;amod+dmod
  180.  
  181.     move.l    #ballmasken,$50(a5)    ;apt
  182.     move.l    #balldaten,$4c(a5)    ;bpt
  183.  
  184.     lea    $40(a5),a0        ;bltcon0+1
  185.     lea    $48(a5),a2        ;cpt-lo
  186.     lea    $54(a5),a3        ;dpt-lo und blitsize        
  187.  
  188.     move.w    logbase(pc),(a2)+    ;logbase -> cpt-hi
  189.     move.w    logbase(pc),(a3)+    ;logbase -> dpt-hi
  190.  
  191.     move.w    #15*2*64+2,d1        ;blitsize
  192.     move.l    curve_shiftpt(pc),a1
  193. blit_bobs_rout:
  194.  
  195.     REPT    balls
  196.     move.l    2(a1),(a0)        ;offsets werden geaendert
  197.     move.w    #0,d0            ;ziel
  198.     move.w    d0,(a2)            ;cpt-lo
  199.     movem.w    d0/d1,(a3)        ;dpt-lo und blitsize
  200.     ENDR
  201.  
  202. ;blit_bobs_list:
  203. ;    blk.b    blit_bobs_list-blit_bobs_rout*(balls-1),0
  204. blit_bobs_end:
  205.     btst    #10,$16(a5)
  206.     bne.s    no_rightbutton
  207.  
  208.     tst.b    right_down-d(a4)
  209.     bne.s    no_rightbutton2        ;falls bereits gedrueckt !
  210.  
  211.     lea    make_back2(pc),a3
  212.     bra.l    make_offsets
  213. make_back2:
  214.     st    right_down
  215.     bra.l    sync            ;neu syncronisieren    
  216. no_rightbutton:
  217.     sf    right_down-d(a4)
  218. no_rightbutton2:
  219.  
  220.     move.w    #$0f0,$180(a5)
  221.  
  222.     btst    #6,$bfe001
  223.     bne.L    mouse
  224.  
  225.     move.l    stack(pc),a7
  226.     rts
  227.  
  228. stack:     dc.l 0
  229. right_down:     dc.b 0
  230.     even
  231.  
  232. st = shifttable
  233. xt = xtable
  234. yt = ytable
  235.  
  236. curve_pt:     dc.l c1
  237. curve_tab:    ;st,xt,yt,xmod,ymod,xspeed,yspeed,next_one
  238. c1:         dc.w 4,8,2,2
  239.         dc.l c2
  240. c2:         dc.w 2,2,4,6
  241.         dc.l c3
  242. c3:         dc.w 4,2,4,6
  243.         dc.l c4
  244. c4:         dc.w 12,0,2,2
  245.         dc.l c5
  246. c5:         dc.w 18,28,2,2
  247.         dc.l c6
  248. c6:         dc.w 8,10,4,2
  249.         dc.l c7
  250. c7:         dc.w 10,8,2,2
  251.         dc.l c1
  252.  
  253. curve_xmod:     dc.w 4
  254. curve_ymod:     dc.w 8
  255. xspeed:     dc.w 4
  256. yspeed:     dc.w 2
  257. curve_xpt:     dc.l xtable
  258. curve_shiftpt:     dc.l shifttable
  259. curve_ypt:     dc.l ytable
  260. shiftspeed:     dc.w 8
  261.  
  262. make_offsets:
  263.     move.l    curve_pt(pc),a0
  264.     movem.l    (a0)+,d0-d2
  265.     lea    xtable,a0
  266.     lea    shifttable,a1
  267.     lea    ytable,a2
  268.     movem.l    d0-d1/a0-a2,curve_xmod
  269.     move.l    d2,curve_pt
  270.  
  271.     move.w    xspeed(pc),d0
  272.     add.w    d0,d0
  273.     move.w    d0,shiftspeed
  274.  
  275.     move.w    xspeed(pc),add_x+2
  276.     move.w    shiftspeed(pc),add_shift+2
  277.     move.w    yspeed(pc),add_y+2
  278.  
  279.     lea    blit_bobs_rout+2(pc),a0
  280.     move.w    #balls-1,d0
  281.     moveq    #0,d1
  282.     move.w    curve_xmod(pc),d2
  283.     add.w    d2,d2            ;*2
  284.     addq.w    #4,d2            ;+4 wegen blittermodulo
  285.     move.w    #320*4,d3
  286.     moveq    #14,d4
  287. make_offl:
  288.     move.w    d1,(a0)
  289.     add.w    d2,d1
  290.     add.l    d4,a0            ;+14
  291.     dbra    d0,make_offl
  292.  
  293.     jmp    (a3)            ;zurueck
  294.  
  295. init_clear:
  296.     lea    clear_proz,a0
  297.     lea    clear_proz_list,a1
  298.     lea    clear_proz+((pl-1)*6),a2    ;ende
  299. init_clr_l:
  300.     move.w    (a0)+,(a1)+
  301.     cmp.l    a2,a1
  302.     blt.s    init_clr_l
  303.  
  304.     lea    clear_proz+4,a0
  305.     move.w    #pl-2,d0
  306.     moveq    #64,d1
  307. init_clr_offs:
  308.     move.w    d1,(a0)
  309.     add.w    #64,d1
  310.     addq.w    #6,a0
  311.     dbra    d0,init_clr_offs
  312.  
  313.     rts
  314.  
  315. init_curve:
  316.     lea    ytable,a0
  317.     moveq    #anz_tabs-1,d0
  318. init_cu1:
  319.     lea    y_tab,a1
  320.     move.w    #200-1,d1
  321. init_cu2:
  322.     move.w    (a1)+,d2
  323.     lsl.w    #7,d2            ;*128
  324.     move.w    d2,(a0)+
  325.     dbra    d1,init_cu2
  326.     dbra    d0,init_cu1
  327.  
  328.     lea    xtable,a0
  329.     moveq    #anz_tabs-1,d0
  330. init_cu3:
  331.     lea    x_tab,a1
  332.     move.w    #320-1,d1
  333. init_cu4:
  334.     move.w    (a1)+,(a0)+
  335.     dbra    d1,init_cu4
  336.     dbra    d0,init_cu3
  337.  
  338.     lea    shifttable,a0
  339.     moveq    #anz_tabs-1,d0
  340. init_cu5:
  341.     lea    shift_tab,a1
  342.     move.w    #320-1,d1
  343. init_cu6:
  344.     move.w    (a1)+,d2
  345.     move.w    d2,(a0)+        ;bltcon 0
  346.     and.w    #$f000,d2        ;fuer bltcon 1
  347.     move.w    d2,(a0)+
  348.     dbra    d1,init_cu6
  349.     dbra    d0,init_cu5
  350.  
  351.     rts
  352.  
  353. init_balls:
  354.     lea    balldaten,a2
  355.     lea    ballmasken,a3
  356.     move.w    #balls-1,d0
  357. init_balls_l:
  358.     lea    ball_dat,a0
  359.     lea    ball_mask,a1
  360.     moveq    #15-1,d1
  361. init_balls_l2:    
  362.     move.l    (a0)+,(a2)+        ;daten
  363.     move.l    (a1)+,(a3)+        ;masken
  364.     dbra    d1,init_balls_l2
  365.     dbra    d0,init_balls_l
  366.  
  367. ;    lea    blit_bobs_rout(pc),a0
  368. ;    lea    blit_bobs_list(pc),a1
  369. ;    lea    blit_bobs_end,a2
  370. ;copy_blit_rout:
  371. ;    move.w    (a0)+,(a1)+
  372.  
  373. ;    cmp.l    a2,a1
  374. ;    blt.s    copy_blit_rout
  375.     rts
  376.  
  377. grafname:     dc.b "graphics.library",0
  378.     even
  379. oldcopper:     dc.l 0
  380. olddma:        dc.w 0
  381. oldint:     dc.w 0
  382.  
  383. logbase:     dc.l $60000
  384. physbase:     dc.l $70000
  385.  
  386. init_customregs:
  387.     lea    $dff000,a0
  388.     move.w    #$2981,$8e(a0)
  389.     move.w    #$f1c1,$90(a0)        ;screenhoehe,breite
  390.     move.w    #$0038,$92(a0)        ;ddf-start
  391.     move.w    #$00d0,$94(a0)        ;ddf-stop
  392.     move.w    #128-40,$108(a0)
  393.     move.w    #128-40,$10a(a0)    ;screen-modulos
  394.     move.w    #0,$104(a0)        ;prioritaet
  395.     move.w    #0,$102(a0)
  396.     move.w    #0,$144(a0)
  397.     move.w    #0,$146(a0)        ;sprites aus
  398.     move.w    #$ffff,$2e(a0)        ;blits durch copper !
  399.     move.w    #$000,$180(a0)
  400.     move.w    #$0fe,$182(a0)
  401.     move.w    #$05c,$184(a0)
  402.     move.w    #$017,$186(a0)
  403.     move.w    #$2200,$100(a0)
  404.  
  405.     rts
  406.  
  407. clist:
  408. c_scpt:
  409.         dc.l $00e20000
  410.         dc.l $00e60040    ;planes
  411.  
  412.         dc.l $fffffffe
  413.  
  414. shift_tab:
  415.         dc.L    $9FCABFCA,$EFCA1FCA,$4FCA7FCA,$AFCADFCA,$0FCA3FCA
  416.         dc.L    $6FCA9FCA,$CFCAFFCA,$2FCA5FCA,$7FCAAFCA,$DFCA0FCA
  417.         dc.L    $3FCA5FCA,$8FCABFCA,$EFCA0FCA,$3FCA5FCA,$8FCAAFCA
  418.         dc.L    $DFCAFFCA,$2FCA4FCA,$7FCA9FCA,$BFCADFCA,$0FCA2FCA
  419.         dc.L    $4FCA6FCA,$8FCAAFCA,$CFCAEFCA,$0FCA2FCA,$3FCA5FCA
  420.         dc.L    $7FCA9FCA,$AFCACFCA,$DFCAFFCA,$0FCA1FCA,$3FCA4FCA
  421.         dc.L    $5FCA6FCA,$7FCA8FCA,$9FCAAFCA,$BFCACFCA,$CFCADFCA
  422.         dc.L    $EFCAEFCA,$FFCAFFCA,$FFCA0FCA,$0FCA0FCA,$0FCA0FCA
  423.         dc.L    $1FCA0FCA,$0FCA0FCA,$0FCA0FCA,$FFCAFFCA,$FFCAEFCA
  424.         dc.L    $EFCADFCA,$CFCACFCA,$BFCAAFCA,$9FCA8FCA,$7FCA6FCA
  425.         dc.L    $5FCA4FCA,$3FCA1FCA,$0FCAFFCA,$DFCACFCA,$AFCA9FCA
  426.         dc.L    $7FCA5FCA,$3FCA2FCA,$0FCAEFCA,$CFCAAFCA,$8FCA6FCA
  427.         dc.L    $4FCA2FCA,$0FCADFCA,$BFCA9FCA,$7FCA4FCA,$2FCAFFCA
  428.         dc.L    $DFCAAFCA,$8FCA5FCA,$3FCA0FCA,$EFCABFCA,$8FCA5FCA
  429.         dc.L    $3FCA0FCA,$DFCAAFCA,$7FCA5FCA,$2FCAFFCA,$CFCA9FCA
  430.         dc.L    $6FCA3FCA,$0FCADFCA,$AFCA7FCA,$4FCA1FCA,$EFCABFCA
  431.         dc.L    $9FCA6FCA,$3FCA0FCA,$DFCAAFCA,$7FCA4FCA,$1FCAEFCA
  432.         dc.L    $BFCA8FCA,$5FCA2FCA,$FFCACFCA,$AFCA7FCA,$4FCA1FCA
  433.         dc.L    $EFCACFCA,$9FCA6FCA,$3FCA1FCA,$EFCACFCA,$9FCA7FCA
  434.         dc.L    $4FCA2FCA,$FFCADFCA,$AFCA8FCA,$6FCA4FCA,$1FCAFFCA
  435.         dc.L    $DFCABFCA,$9FCA7FCA,$5FCA3FCA,$1FCAFFCA,$EFCACFCA
  436.         dc.L    $AFCA8FCA,$7FCA5FCA,$4FCA2FCA,$1FCA0FCA,$EFCADFCA
  437.         dc.L    $CFCABFCA,$AFCA9FCA,$8FCA7FCA,$6FCA5FCA,$5FCA4FCA
  438.         dc.L    $3FCA3FCA,$2FCA2FCA,$2FCA1FCA,$1FCA1FCA,$1FCA1FCA
  439.         dc.L    $0FCA1FCA,$1FCA1FCA,$1FCA1FCA,$2FCA2FCA,$2FCA3FCA
  440.         dc.L    $3FCA4FCA,$5FCA5FCA,$6FCA7FCA,$8FCA9FCA,$AFCABFCA
  441.         dc.L    $CFCADFCA,$EFCA0FCA,$1FCA2FCA,$4FCA5FCA,$7FCA8FCA
  442.         dc.L    $AFCACFCA,$EFCAFFCA,$1FCA3FCA,$5FCA7FCA,$9FCABFCA
  443.         dc.L    $DFCAFFCA,$1FCA4FCA,$6FCA8FCA,$AFCADFCA,$FFCA2FCA
  444.         dc.L    $4FCA7FCA,$9FCACFCA,$EFCA1FCA,$3FCA6FCA,$9FCACFCA
  445.         dc.L    $EFCA1FCA,$4FCA7FCA,$AFCACFCA,$FFCA2FCA,$5FCA8FCA
  446.         dc.L    $BFCAEFCA,$1FCA4FCA,$7FCAAFCA,$DFCA0FCA,$3FCA6FCA
  447.  
  448. y_tab:
  449.         dc.L    $00B900B8,$00B800B8,$00B800B7,$00B700B6,$00B600B5
  450.         dc.L    $00B400B3,$00B200B1,$00B000AE,$00AD00AC,$00AA00A9
  451.         dc.L    $00A700A5,$00A300A2,$00A0009E,$009B0099,$00970095
  452.         dc.L    $00930090,$008E008B,$00890086,$00840081,$007E007C
  453.         dc.L    $00790076,$00730071,$006E006B,$00680065,$0062005F
  454.         dc.L    $005D005A,$00570054,$0051004E,$004B0048,$00460043
  455.         dc.L    $0040003D,$003B0038,$00350033,$0030002E,$002B0029
  456.         dc.L    $00260024,$00220020,$001E001B,$00190017,$00160014
  457.         dc.L    $00120010,$000F000D,$000C000B,$00090008,$00070006
  458.         dc.L    $00050004,$00030003,$00020002,$00010001,$00010001
  459.         dc.L    $00000001,$00010001,$00010002,$00020003,$00030004
  460.         dc.L    $00050006,$00070008,$0009000B,$000C000D,$000F0010
  461.         dc.L    $00120014,$00160017,$0019001B,$001E0020,$00220024
  462.         dc.L    $00260029,$002B002E,$00300033,$00350038,$003B003D
  463.         dc.L    $00400043,$00460048,$004B004E,$00510054,$0057005A
  464.         dc.L    $005C005F,$00620065,$0068006B,$006E0071,$00730076
  465.         dc.L    $0079007C,$007E0081,$00840086,$0089008B,$008E0090
  466.         dc.L    $00930095,$00970099,$009B009E,$00A000A2,$00A300A5
  467.         dc.L    $00A700A9,$00AA00AC,$00AD00AE,$00B000B1,$00B200B3
  468.         dc.L    $00B400B5,$00B600B6,$00B700B7,$00B800B8,$00B800B8
  469.  
  470. x_tab:
  471.         dc.L    $00120012,$00120014,$00140014,$00140014,$00160016
  472.         dc.L    $00160016,$00160016,$00180018,$00180018,$0018001A
  473.         dc.L    $001A001A,$001A001A,$001A001C,$001C001C,$001C001C
  474.         dc.L    $001C001C,$001E001E,$001E001E,$001E001E,$00200020
  475.         dc.L    $00200020,$00200020,$00200020,$00220022,$00220022
  476.         dc.L    $00220022,$00220022,$00220022,$00240024,$00240024
  477.         dc.L    $00240024,$00240024,$00240024,$00240024,$00240024
  478.         dc.L    $00240024,$00240024,$00240026,$00260026,$00260026
  479.         dc.L    $00260026,$00260026,$00260026,$00240024,$00240024
  480.         dc.L    $00240024,$00240024,$00240024,$00240024,$00240024
  481.         dc.L    $00240024,$00240024,$00240022,$00220022,$00220022
  482.         dc.L    $00220022,$00220022,$00220020,$00200020,$00200020
  483.         dc.L    $00200020,$0020001E,$001E001E,$001E001E,$001E001C
  484.         dc.L    $001C001C,$001C001C,$001C001C,$001A001A,$001A001A
  485.         dc.L    $001A001A,$00180018,$00180018,$00180016,$00160016
  486.         dc.L    $00160016,$00160014,$00140014,$00140014,$00120012
  487.         dc.L    $00120012,$00120012,$00100010,$00100010,$0010000E
  488.         dc.L    $000E000E,$000E000E,$000C000C,$000C000C,$000C000C
  489.         dc.L    $000A000A,$000A000A,$000A000A,$00080008,$00080008
  490.         dc.L    $00080008,$00060006,$00060006,$00060006,$00060004
  491.         dc.L    $00040004,$00040004,$00040004,$00040002,$00020002
  492.         dc.L    $00020002,$00020002,$00020002,$00020002,$00000000
  493.         dc.L    $00000000,$00000000,$00000000,$00000000,$00000000
  494.         dc.L    $00000000,$00000000,$00000000,$00000000,$00000000
  495.         dc.L    $00000000,$00000000,$00000000,$00000000,$00000000
  496.         dc.L    $00000000,$00000000,$00000000,$00000000,$00000000
  497.         dc.L    $00000000,$00000002,$00020002,$00020002,$00020002
  498.         dc.L    $00020002,$00020002,$00040004,$00040004,$00040004
  499.         dc.L    $00040004,$00060006,$00060006,$00060006,$00060008
  500.         dc.L    $00080008,$00080008,$0008000A,$000A000A,$000A000A
  501.         dc.L    $000A000C,$000C000C,$000C000C,$000C000E,$000E000E
  502.         dc.L    $000E000E,$00100010,$00100010,$00100012,$00120012
  503.  
  504. ball_dat:    ;15x15 ball, 2 planes, raw-blit
  505.         dc.l    $07c007c0,$14f01cf0,$12382e38
  506.         dc.l    $7a2c463c,$12346e3c,$c432fc3e,$b822b83e,$806a8076
  507.         dc.l    $806a8076,$c3cec3f6,$5f147fec,$606c7f9c,$33983c78
  508.         dc.l    $1c701ff0,$07c007c0
  509.  
  510. ball_mask:    ;maske des balls (farbe 0 mitverwendet)
  511.         dc.l    $07c007c0,$1ff01ff0,$3ff83ff8,$7ffc7ffc,$7ffc7ffc
  512.         dc.l    $fffefffe,$fffefffe,$fffefffe,$fffefffe,$fffefffe
  513.         dc.l    $7ffc7ffc,$7ffc7ffc,$3ff83ff8,$1ff01ff0,$07c007c0
  514.  
  515. End:
  516.